package com.hxf.dao.food;

import java.util.List;

import com.hxf.dao.BaseDao;
import com.hxf.dto.MealMenuDto;
import com.hxf.dto.MealMenuTypeDto;
import com.hxf.dto.RestaurantDto;
import com.hxf.dto.ReturnData;
import com.hxf.exception.DaoLevelException;
import com.hxf.web.vo.MealMenuVo;
import com.hxf.web.vo.OrderDetailVo;

public interface MealMenuDao extends BaseDao {
	/**
	 * 查询餐厅菜单 分页
	 * @param mealMenuDto
	 * @return ReturnData<MealMenuDto>
	 * @throws DaoLevelException
	 */
	public ReturnData<MealMenuDto> findByMealMenu(MealMenuDto mealMenuDto, int targetPage, int pageSize) throws DaoLevelException;

	/**
	 * 根据地址和餐厅名称搜索菜肴
	 * @param restaurantDto
	 * @param mealMenuDto
	 * @return
	 * @throws DaoLevelException
	 */
	public ReturnData<MealMenuVo> findMealMenuByRestaurant(RestaurantDto restaurantDto, MealMenuDto mealMenuDto, int targetPage, int pageSize) throws DaoLevelException;
	
	/**
	 * 查询餐厅所有菜单
	 * @param mealMenuDto
	 * @return List<MealMenuDto>
	 * @throws DaoLevelException
	 */
	public List<MealMenuDto> findByMealMenu(MealMenuDto mealMenuDto) throws DaoLevelException;
	
	/**
	 * 查询餐厅菜单类型
	 * @return List<MealMenuTypeDto>
	 * @throws DaoLevelException
	 */
	public List<MealMenuTypeDto> findByMealMenuType(MealMenuTypeDto mealMenuTypeDto) throws DaoLevelException;
	
 
	/**
	 * 查询餐厅菜单和优惠信息
	 * @param mealMenuDto
	 * @return
	 * @throws DaoLevelException
	 */
	public List<OrderDetailVo> findByMealMenuPreferential(MealMenuDto mealMenuDto) throws DaoLevelException;
	
	/**
	 * 根据多个菜肴ID 查询菜肴 
	 * @return
	 * @throws DaoLevelException
	 */
	public List<MealMenuDto> findByMealMenuByIds(String mealMenuIds) throws DaoLevelException;
}
